package edu.nf.ch04.web;

import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;

/**
 * @author wangl
 * @date 2025/5/13
 * 操作作用域数据
 */
@Controller
public class ModelController {

    /**
     * 使用ModelAndView对象
     * @return
     */
    @GetMapping("/model1")
    public ModelAndView test1() {
        //构建ModelAndView并指定视图名（要转发的页面）
        ModelAndView mav = new ModelAndView("index");
        //将数据保存到Model中（他也就是保存到请求作用域）
        //DispatcherServlet会将数据保存到请求作用域
        mav.addObject("name", "user1");
        return mav;
    }

    /**
     * 也可以使用Model、ModelMap、Map对象来保存请求作用域数据
     * @param model
     * @return
     */
    @GetMapping("/model2")
    public String test2(Model model) {
        model.addAttribute("name", "user2");
        return "index";
    }

    /**
     * 操作会话作用域
     * @param session
     * @return
     */
    @GetMapping("/session")
    public String test3(HttpSession session) {
        session.setAttribute("name", "user3");
        return "index";
    }
}